<!--
  ****************************************************************************
  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
  * Copyright 1998-2017,2018 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * "Software"), to deal in the Software without restriction, including      *
  * without limitation the rights to use, copy, modify, merge, publish,      *
  * distribute, distribute with modifications, sublicense, and/or sell       *
  * copies of the Software, and to permit persons to whom the Software is    *
  * furnished to do so, subject to the following conditions:                 *
  *                                                                          *
  * The above copyright notice and this permission notice shall be included  *
  * in all copies or substantial portions of the Software.                   *
  *                                                                          *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
  *                                                                          *
  * Except as contained in this notice, the name(s) of the above copyright   *
  * holders shall not be used in advertising or otherwise to promote the     *
  * sale, use or other dealings in this Software without prior written       *
  * authorization.                                                           *
  ****************************************************************************
  * @Id: curs_termcap.3x,v 1.85 2024/04/20 19:13:12 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_termcap 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">

</HEAD>
<BODY>
<H1 class="no-header">curs_termcap 3x 2024-04-20 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>




</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
       <STRONG>PC</STRONG>, <STRONG>UP</STRONG>, <STRONG>BC</STRONG>, <STRONG>ospeed</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, <STRONG>tgetstr</STRONG>, <STRONG>tgoto</STRONG>, <STRONG>tputs</STRONG> -
       <EM>curses</EM> emulation of <EM>termcap</EM>


</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
       <STRONG>#include</STRONG> <STRONG>&lt;term.h&gt;</STRONG>

       <STRONG>char</STRONG> <STRONG>PC;</STRONG>
       <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>UP;</STRONG>
       <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>BC;</STRONG>
       <STRONG>short</STRONG> <STRONG>ospeed;</STRONG>

       <STRONG>int</STRONG> <STRONG>tgetent(char</STRONG> <STRONG>*</STRONG><EM>bp</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>name</EM><STRONG>);</STRONG>
       <STRONG>int</STRONG> <STRONG>tgetflag(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>id</EM><STRONG>);</STRONG>
       <STRONG>int</STRONG> <STRONG>tgetnum(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>id</EM><STRONG>);</STRONG>
       <STRONG>char</STRONG> <STRONG>*tgetstr(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>id</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>**</STRONG><EM>area</EM><STRONG>);</STRONG>
       <STRONG>char</STRONG> <STRONG>*tgoto(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>cap</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>col</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>row</EM><STRONG>);</STRONG>
       <STRONG>int</STRONG> <STRONG>tputs(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>affcnt</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>


</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
       <EM>ncurses</EM>  provides  the  foregoing  variables   and   functions   as   a
       compatibility layer for programs that use the <EM>termcap</EM> library.  The API
       is the same, but behavior is  emulated  using  the  <EM>terminfo</EM>  database.
       Thus,  it  can  be  used  only  to  query  the capabilities of terminal
       database entries for which a <EM>terminfo</EM> entry has been compiled.


</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
       <STRONG>tgetent</STRONG> loads the terminal database entry for <EM>name</EM>; see <STRONG><A HREF="term.7.html">term(7)</A></STRONG>.   This
       must be done before calling any of the other functions.  It returns

          1    on success,

          0    if there is no such entry (or if the matching entry describes a
               generic terminal, having  too  little  information  for  <EM>curses</EM>
               applications to run), and

          -1   if the <EM>terminfo</EM> database could not be found.

       This implementation differs from those of historical <EM>termcap</EM> libraries.

          <STRONG>o</STRONG>   <EM>ncurses</EM>  ignores  the  buffer  pointer  <EM>bp</EM>,  as do other <EM>termcap</EM>
              implementations conforming to  portions  of  X/Open  Curses  now
              withdrawn.   The  BSD  <EM>termcap</EM> library would store a copy of the
              terminal  type  description  in  the  area  referenced  by  this
              pointer.  <EM>terminfo</EM> stores terminal type descriptions in compiled
              form, which is not the same thing.

          <STRONG>o</STRONG>   The meanings of the  return  values  differ.   The  BSD  <EM>termcap</EM>
              library  does  not  check  whether the terminal type description
              includes the <STRONG>generic</STRONG> (<STRONG>gn</STRONG>) capability, nor whether  the  terminal
              type  description  supports  an  addressable  cursor, a property
              essential for any <EM>curses</EM> implementation to operate.


</PRE><H3><a name="h3-Retrieving-Capability-Values">Retrieving Capability Values</a></H3><PRE>
       <STRONG>tgetflag</STRONG> reports the Boolean entry  for  <EM>id</EM>,  or  zero  if  it  is  not
       available.

       <STRONG>tgetnum</STRONG> obtains the numeric entry for <EM>id</EM>, or -1 if it is not available.

       <STRONG>tgetstr</STRONG>  returns  the  string  entry  for  <EM>id</EM>,  or  <STRONG>NULL</STRONG>  if  it is not
       available.   Use  <STRONG>tputs</STRONG>  to  output  the  string  returned.   The  <EM>area</EM>
       parameter is used as follows.

          <STRONG>o</STRONG>   It is assumed to be the address of a pointer to a buffer managed
              by the calling application.

          <STRONG>o</STRONG>   However, <EM>ncurses</EM> checks to ensure that <EM>area</EM>  is  not  <STRONG>NULL</STRONG>,  and
              also  that  the resulting buffer pointer is not <STRONG>NULL</STRONG>.  If either
              check fails, <EM>area</EM> is ignored.

          <STRONG>o</STRONG>   If the checks succeed, <EM>ncurses</EM> also copies the return  value  to
              the  buffer  pointed to by <EM>area</EM>, and the library updates <EM>area</EM> to
              point past the null character terminating this value.

          <STRONG>o</STRONG>   The return value itself is  an  address  in  the  terminal  type
              description loaded into memory.


</PRE><H3><a name="h3-Applying-String-Capabilities">Applying String Capabilities</a></H3><PRE>
       String capabilities can be parameterized; see subsection "Parameterized
       Strings" in  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  <STRONG>tgoto</STRONG> applies its second and third arguments
       to  the  parametric  placeholders in the capability stored in the first
       argument.

       <STRONG>o</STRONG>   The capability may contain padding specifications;  see  subsection
           "Delays  and  Padding"  of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  The output of <STRONG>tgoto</STRONG> should
           thus be passed to <STRONG>tputs</STRONG> rather than some other output function such
           as <STRONG>printf(3)</STRONG>.

       <STRONG>o</STRONG>   While  <STRONG>tgoto</STRONG>  is  assumed  to  be used for the two-parameter cursor
           positioning  capability,  <EM>termcap</EM>  applications  also  use  it  for
           single-parameter capabilities.

           Doing  so  reveals  a  quirk  in <STRONG>tgoto</STRONG>: most hardware terminals use
           cursor addressing with <EM>row</EM> first, but the  original  developers  of
           the  <EM>termcap</EM>  interface  chose  to  put  the <EM>col</EM> (column) parameter
           first.  The <STRONG>tgoto</STRONG> function swaps the order of its  parameters.   It
           does  this  even  for  calls requiring only a single parameter.  In
           that case, the first parameter is merely a placeholder.

       <STRONG>o</STRONG>   Normally the <EM>ncurses</EM>  library  is  compiled  without  full  <EM>termcap</EM>
           support.  In that case, <STRONG>tgoto</STRONG> uses an internal version of <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>
           (a more capable function).

           Because it uses <STRONG>tparm</STRONG> internally, <STRONG>tgoto</STRONG> is able to use  some  <EM>term-</EM>
           <EM>info</EM>  features, but not all.  In particular, it allows only numeric
           parameters; <STRONG>tparm</STRONG> supports string parameters.

           However, <STRONG>tparm</STRONG> is not  a  <EM>termcap</EM>  feature,  and  portable  <EM>termcap</EM>
           applications should not rely upon its availability.

       <STRONG>tputs</STRONG>  is described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>.  It can retrieve capabilities
       by either <EM>termcap</EM> or <EM>terminfo</EM> code.


</PRE><H3><a name="h3-Global-Variables">Global Variables</a></H3><PRE>
       The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the <EM>terminfo</EM>  entry's
       data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and <STRONG>backspace_if_not_bs</STRONG>, respectively.  <STRONG>UP</STRONG>
       is not used by <EM>ncurses</EM>.  <STRONG>PC</STRONG> is used by <STRONG><A HREF="curs_util.3x.html">delay_output(3x)</A></STRONG>.  <STRONG>BC</STRONG> is used by
       <STRONG>tgoto</STRONG> emulation.  The variable <STRONG>ospeed</STRONG> is set by <EM>ncurses</EM> using a system-
       specific encoding to indicate the terminal's data rate.


</PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE>
       The <EM>termcap</EM> functions provide  no  means  of  freeing  memory,  because
       legacy  <EM>termcap</EM>  implementations used only the buffer areas provided by
       the caller via <STRONG>tgetent</STRONG> and <STRONG>tgetstr</STRONG>.  Those buffers are unused in  <EM>term-</EM>
       <EM>info</EM>.

       By  contrast,  <EM>terminfo</EM>  allocates  memory.   It  uses <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG> to
       obtain the data  used  by  <STRONG>tgetent</STRONG>  and  the  functions  that  retrieve
       capability values.  One could use
              del_curterm(cur_term);
       to  free  this  memory,  but  there  is an additional complication with
       <EM>ncurses</EM>.  It uses a fixed-size pool of storage locations, one per value
       of the terminal name parameter given to <STRONG>tgetent</STRONG>.  The <STRONG>screen(1)</STRONG> program
       relies upon this arrangement to improve its performance.

       An application that uses only the <EM>termcap</EM>  functions,  not  the  higher
       level  <EM>curses</EM>  API,  could  release  the  memory using <STRONG><A HREF="curs_terminfo.3x.html">del_curterm(3x)</A></STRONG>,
       because the pool is freed using other functions; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.


</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
       The return values of  <STRONG>tgetent</STRONG>,  <STRONG>tgetflag</STRONG>,  <STRONG>tgetname</STRONG>,  and  <STRONG>tgetstr</STRONG>  are
       documented above.

       <STRONG>tgoto</STRONG> returns <STRONG>NULL</STRONG> on error.  Error conditions include:

       <STRONG>o</STRONG>   uninitialized state (<STRONG>tgetent</STRONG> was not called successfully),

       <STRONG>o</STRONG>   <EM>cap</EM> being a null pointer,

       <STRONG>o</STRONG>   <EM>cap</EM> referring to a canceled capability,

       <STRONG>o</STRONG>   <EM>cap</EM>  being  a  capability  with  string-valued  parameters (a <EM>term-</EM>
           <EM>info</EM>-only feature), and

       <STRONG>o</STRONG>   <EM>cap</EM> being a capability with more than two parameters.

       See <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> regarding <STRONG>tputs</STRONG>.


</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
       <EM>ncurses</EM> compares only the first two characters of the <EM>id</EM>  parameter  of
       <STRONG>tgetflag</STRONG>, <STRONG>tgetnum</STRONG>, and <STRONG>tgetstr</STRONG> to the capability names in the database.


</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
       These  functions  are  no  longer standardized (and the variables never
       were); <EM>ncurses</EM> provides them  to  support  legacy  applications.   They
       should not be used in new programs.


</PRE><H3><a name="h3-Standards">Standards</a></H3><PRE>
       <STRONG>o</STRONG>   X/Open   Curses,   Issue  4,  Version  2  (1996),  describes  these
           functions, marking them as "TO BE WITHDRAWN".

       <STRONG>o</STRONG>   X/Open Curses, Issue 7 (2009) marks the  <EM>termcap</EM>  interface  (along
           with <STRONG>vwprintw</STRONG> and <STRONG>vwscanw</STRONG>) as withdrawn.

       Neither  X/Open  Curses  nor  the  SVr4 man pages documented the return
       values of <STRONG>tgetent</STRONG> correctly, though all three shown here were  in  fact
       returned  ever  since  SVr1.   In particular, an omission in the X/Open
       Curses specification has  been  misinterpreted  to  mean  that  <STRONG>tgetent</STRONG>
       returns  <STRONG>OK</STRONG>  or  <STRONG>ERR</STRONG>.   Because  the  purpose  of these functions is to
       provide compatibility with the <EM>termcap</EM> library, that  is  a  defect  in
       X/Open Curses, Issue 4, Version 2 rather than in <EM>ncurses</EM>.

   <STRONG>Compatibility</STRONG> <STRONG>with</STRONG> <STRONG>BSD</STRONG> <EM>termcap</EM>
       Externally  visible  variables  are  provided  for  support  of certain
       <EM>termcap</EM>  applications.   However,  their  correct   usage   is   poorly
       documented; for example, it is unclear when reading and writing them is
       meaningful.  In particular, some applications are reported  to  declare
       and/or modify <STRONG>ospeed</STRONG>.

       The  constraint  that only the first two characters of the <EM>id</EM> parameter
       are used escapes many application developers.  The BSD <EM>termcap</EM>  library
       did  not require a trailing null character on the capability identifier
       passed to <STRONG>tgetstr</STRONG>,  <STRONG>tgetnum</STRONG>,  and  <STRONG>tgetflag</STRONG>.   Some  applications  thus
       assume  that  the  <EM>termcap</EM> interface does not require the trailing null
       character for the capability identifier.

       <STRONG>o</STRONG>   <EM>ncurses</EM> disallows matches by the <EM>termcap</EM> interface against extended
           capability   names   that  are  longer  than  two  characters;  see
           <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.

       The BSD <EM>termcap</EM> function <STRONG>tgetent</STRONG> returns the text of a <EM>termcap</EM> entry in
       the  buffer  passed  as an argument.  This library, like other <EM>terminfo</EM>
       implementations, does not store terminal type descriptions as text.  It
       sets the buffer contents to a null-terminated string.


</PRE><H3><a name="h3-Header-File">Header File</a></H3><PRE>
       This  library  includes a <EM>termcap.h</EM> header for compatibility with other
       implementations, but the  header  is  rarely  used  because  the  other
       implementations are not strictly compatible.


</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
       Bill  Joy  originated  a  forerunner  of <EM>termcap</EM> called "ttycap", dated
       September 1977, and released in 1BSD (March 1978).  It used many of the
       same  function  names  as the later <EM>termcap</EM>, such as <STRONG>tgetent</STRONG>, <STRONG>tgetflag</STRONG>,
       <STRONG>tgetnum</STRONG>, and <STRONG>tgetstr</STRONG>.

       A clear descendant, the <EM>termlib</EM> library, followed in 2BSD  (May  1979),
       adding <STRONG>tgoto</STRONG> and <STRONG>tputs</STRONG>.  The former applied at that time only to cursor
       positioning  capabilities,  thus  the  overly  specific  name.   Little
       changed  in 3BSD (late 1979) except the addition of test programs and a
       <EM>termlib</EM> man page, which documented the API shown in section  "SYNOPSIS"
       above.

       4BSD  (November 1980) renamed <EM>termlib</EM> to <EM>termcap</EM> and added another test
       program.  The library remained much the same though 4.3BSD (June 1986).
       4.4BSD-Lite (June 1994) refactored it, leaving the API unchanged.

       Function  prototypes were a feature of ANSI C (1989).  The library long
       antedated the standard and thus provided no header file declaring them.
       Nevertheless,  the  BSD sources included two different <EM>termcap.h</EM> header
       files over time.

       <STRONG>o</STRONG>   One was used internally by <STRONG>jove(1)</STRONG> from 4.3BSD onward.  It declared
           global symbols for the <EM>termcap</EM> variables that it used.

       <STRONG>o</STRONG>   The  other appeared in 4.4BSD-Lite Release 2 (June 1995) as part of
           <EM>libedit</EM> (also known as the <EM>editline</EM> library).  CSRG source  history
           shows that this was added in mid-1992.  The <EM>libedit</EM> header file was
           used  internally  as  a  convenience  for  compiling  the  <EM>editline</EM>
           library.  It declared function prototypes, but no global variables.
           This header file was added to NetBSD's <EM>termcap</EM> library in mid-1994.

       Meanwhile, GNU <EM>termcap</EM> began development in 1990.   Its  first  release
       (1.0)  in  1991  included  a  <EM>termcap.h</EM>  header.   Its  second (1.1) in
       September 1992 modified the  header  to  use  <EM>const</EM>  for  the  function
       prototypes  in  the  header where one would expect the parameters to be
       read-only.   BSD  <EM>termcap</EM>  did  not.   The  prototype  for  <STRONG>tputs</STRONG>  also
       differed,  but  in that instance, it was <EM>libedit</EM> that differed from BSD
       <EM>termcap</EM>.

       GNU <EM>termcap</EM> 1.3 was bundled with <STRONG>bash(1)</STRONG> in  mid-1993  to  support  the
       <STRONG>readline(3)</STRONG> library.

       <EM>ncurses</EM>  1.8.1 (November 1993) provided a <EM>termcap.h</EM> file.  It reflected
       influence  from  GNU  <EM>termcap</EM>  and  <STRONG>emacs(1)</STRONG>  (rather  than   <STRONG>jove(1)</STRONG>),
       providing the following interface:

       <STRONG>o</STRONG>   global symbols used by <EM>emacs</EM>,

       <STRONG>o</STRONG>   <EM>const</EM>-qualified function prototypes, and

       <STRONG>o</STRONG>   a prototype for <STRONG>tparam</STRONG>, a GNU <EM>termcap</EM> feature.

       Later  (in mid-1996) the <STRONG>tparam</STRONG> function was removed from <EM>ncurses</EM>.  Any
       two of the four implementations thus differ, and programs  that  intend
       to work with all <EM>termcap</EM> library interfaces must account for that fact.


</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
       If  you  call  <STRONG>tgetstr</STRONG>  to  fetch  <STRONG>column_address</STRONG>  (<STRONG>ch</STRONG>)  or  any  other
       parameterized string capability, be aware that it is returned in  <EM>term-</EM>
       <EM>info</EM> notation, not the older and not-quite-compatible <EM>termcap</EM> notation.
       This does not cause problems if all you do with it  is  call  <STRONG>tgoto</STRONG>  or
       <STRONG>tparm</STRONG>,   which   both   parametrically   expand  <EM>terminfo</EM>-style  string
       capabilities as <EM>terminfo</EM> does.  (If <EM>ncurses</EM> is  configured  to  support
       <EM>termcap,</EM>  <STRONG>tgoto</STRONG>  checks whether the string is <EM>terminfo</EM>-style by looking
       for "<STRONG>%p</STRONG>" parameters or "<STRONG>&lt;</STRONG>...<STRONG>&gt;</STRONG>"  delays,  and  invokes  a  <EM>termcap</EM>-style
       parser if the string appears not to use <EM>terminfo</EM> syntax.)

       Because  <EM>terminfo</EM>'s  syntax  for padding in string capabilities differs
       from <EM>termcap</EM>'s, users can be surprised.

       <STRONG>o</STRONG>   <STRONG>tputs("50")</STRONG> in a <EM>terminfo</EM> system transmits "50" rather  than  busy-
           waiting for 50 milliseconds.

       <STRONG>o</STRONG>   However,  if  <EM>ncurses</EM> is configured to support <EM>termcap</EM>, it may also
           have been configured to support BSD-style padding.

           In that case, <STRONG>tputs</STRONG> inspects strings  passed  to  it,  looking  for
           digits at the beginning of the string.

           <STRONG>tputs("50")</STRONG>  in  a <EM>termcap</EM> system may busy-wait for 50 milliseconds
           rather than transmitting "50".

       <EM>termcap</EM>  has  nothing  analogous  to  <EM>terminfo</EM>'s  <STRONG>set_attributes</STRONG>  (<STRONG>sgr</STRONG>)
       capability.   One  consequence is that <EM>termcap</EM> applications assume that
       "<STRONG>me</STRONG>" (equivalent to <EM>terminfo</EM>'s <STRONG>exit_attribute_mode</STRONG>  (<STRONG>sgr0</STRONG>)  capability)
       does  not  reset  the alternate character set.  <EM>ncurses</EM> checks for, and
       modifies the data shared with, the <EM>termcap</EM> interface to accommodate the
       latter's limitation in this respect.


</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>

       https://invisible-island.net/ncurses/tctest.html



ncurses 6.5                       2024-04-20                  <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Initialization">Initialization</a></li>
<li><a href="#h3-Retrieving-Capability-Values">Retrieving Capability Values</a></li>
<li><a href="#h3-Applying-String-Capabilities">Applying String Capabilities</a></li>
<li><a href="#h3-Global-Variables">Global Variables</a></li>
<li><a href="#h3-Releasing-Memory">Releasing Memory</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-Standards">Standards</a></li>
<li><a href="#h3-Header-File">Header File</a></li>
</ul>
</li>
<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
</HTML>
